Déplacement pour eggification.
[Plinn.git] / photoshop / Plinn Images Wizard.jsx
diff --git a/photoshop/Plinn Images Wizard.jsx b/photoshop/Plinn Images Wizard.jsx
deleted file mode 100644 (file)
index 866c5e5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#target photoshop\r#include image_actions.jsxinc\r\rapp.bringToFront();\r$.localize = true;\r\rvar messages = {\r  "wizardTitle" : localize("$$$/JavaScripts/PlinnImageWizard/Title"),\r    "srcPanelLabel" : localize("$$$/JavaScripts/PlinnImageWizard/SrcPanelLabel"),\r  \r       "helpPropsFile" : localize("$$$/JavaScripts/PlinnImageWizard/HelpPropsFile"),\r  "buttonSelectPropsFile" : localize("$$$/JavaScripts/PlinnImageWizard/ButtonSelectPropsFile"),\r  "noFileSelected" : localize("$$$/JavaScripts/PlinnImageWizard/NoFileSelected"),\r        "promptSelectSrcPropsFile" : localize("$$$/JavaScripts/PlinnImageWizard/PromptSelectSrcPropsFile"),\r    \r       "helpSrcFolder" : localize("$$$/JavaScripts/PlinnImageWizard/HelpSrcFolder"),\r  "selectSrcFolder" : localize("$$$/JavaScripts/PlinnImageWizard/ButtonSelectSrcFolder"),\r        "promptSelectSrcFolder" : localize("$$$/JavaScripts/PlinnImageWizard/PromptSelectSrcFolder"),\r\r "destPanelLabel" : localize("$$$/JavaScripts/PlinnImageWizard/DestPanelLabel"),\r        "helpDestFolder" : localize("$$$/JavaScripts/PlinnImageWizard/HelpDestFolder"),\r        "selectDestFolder" : localize("$$$/JavaScripts/PlinnImageWizard/ButtonSelectDestFolder"),\r      "promptSelectDestFolder" : localize("$$$/JavaScripts/PlinnImageWizard/PromptSelectDestFolder"),\r\r       "noFolderSelected" : localize("$$$/JavaScripts/PlinnImageWizard/NoFolderSelected"),\r    "okBtnLabel" : localize("$$$/JavaScripts/PlinnImageWizard/OkBtnLabel"),\r        "cancelBtnLabel" : localize("$$$/JavaScripts/PlinnImageWizard/CancelBtnLabel")\r}\r\rfunction init() {\r    dlg = null;\r    propsFile = null;\r      selectedPropsFile = null;\r      srcFolder = null;\r      selectedFolderPath = null;\r     destFolder = null\r      selectedDestFolderPath = null;\r gShortFileNameLength = 22;\r     plinnFileProcess = {'loading_progress.psd':true,\r                                               'plinn.psd':true};\r     plinnFiles = null;\r     colorRegistry = new Array();\r}\r\r\rvar colorRegistry = new Array();\rcolorRegistry['menuBAr']\r\rvar PlinnProcess = new Array();\r\rPlinnProcess['loading_progress.psd'] = function(file) {\r    var doc = app.open(file)\r    app.activeDocument = doc;\r        var fsPath = destFolder.fsName + '/loading_progress.gif';\r      _loadingProgress(fsPath, colorRegistry['memberActionsBoxBackground'], colorRegistry['bulletColor'])\r    doc.close(SaveOptions.DONOTSAVECHANGES);\r};\r\rPlinnProcess['plinn.psd'] = function(file) {\r    var doc = app.open(file)\r    app.activeDocument = doc;\r   var fsPath = destFolder.fsName + '/logo.gif';\r  _plinnLogo(fsPath, colorRegistry['topbarBackgroundColor'], colorRegistry['bulletColor'])\r    doc.close(SaveOptions.DONOTSAVECHANGES);\r};\r\rfunction inputFileFilter(ob) {\r    return (plinnFileProcess[ob.name]) ? true : false;\r}\r\rfunction setPropsFile() {\r   propsFile = File.openDialog(messages['promptSelectSrcPropsFile']);\r     if (!propsFile)\r            return;\r    selectedPropsFile.text = shortFileName(propsFile.fsName);\r      parsePropsFile();\r      checkVarsInitialization();\r}\r\rfunction setSrcFolder() {\r        srcFolder = Folder.selectDialog(messages['promptSelectSrcFolder']);\r    if (!srcFolder)\r            return;\r    selectedSrcFolderPath.text = shortFileName(srcFolder.fsName);\r  plinnFiles = srcFolder.getFiles(inputFileFilter);\r      checkVarsInitialization();\r}\r\rfunction setDestFolder() {\r       destFolder = Folder.selectDialog(messages['promptSelectDestFolder']);\r  if (!destFolder)\r           return;\r    selectedDestFolderPath.text = shortFileName(destFolder.fsName);\r        checkVarsInitialization();\r}\r\rfunction checkVarsInitialization() {\r    if (propsFile && srcFolder && destFolder)\r        dlg.defaultElement.enabled = true;\r}\r\rfunction parsePropsFile() {\r     propsFile.open('r');\r   var line, nameTypeValue, name, typeValue, type, value;\r while (!propsFile.eof) {\r               line = propsFile.readln();\r             line = line.replace(/^\s*(.*?)\s*$/, "$1");\r            if (!line || line[0] == '#') continue;\r         \r               /* découpage */\r        nameTypeValue = line.split(':',2)\r             name = nameTypeValue[0];\r               typeValue = nameTypeValue[1].split('=', 2);\r            type = typeValue[0];\r           value = typeValue[1];\r          /* strip */\r            name = name.replace(/^\s*(.*?)\s*$/, "$1");\r            type = type.replace(/^\s*(.*?)\s*$/, "$1");\r            value = value.replace(/^\s*(.*?)\s*$/, "$1");\r          if (type != 'string' || value[0] != '#')\r                       continue;\r              \r               colorRegistry[name] = splitRGB(value);\r }\r}\r\rvar hexToDec = {'0':0, '1':1, '2':2,  '3':3,  '4':4,  '5':5,  '6':6,  '7':7,\r                '8':8, '9':9, 'a':10, 'b':11, 'c':12, 'd':13, 'e':14, 'f':15};\rfunction splitRGB(value) {\r    value = value.slice(1)\r    value = value.toLowerCase();\r    if (value.length == 3)\r        value = value[0] + value[0] + value[1] + value[1] + value[2] + value[2]\r    var r = value.slice(0,2);\r    var g = value.slice(2, 4);\r    var b = value.slice(4, 6);\r    \r    r = 16 * hexToDec[r[0]] + hexToDec[r[1]];\r    g = 16 * hexToDec[g[0]] + hexToDec[g[1]];\r    b = 16 * hexToDec[b[0]] + hexToDec[b[1]];\r    return [r, g, b];\r}\r\rfunction processImages() {\r    for (var i = 0 ; i < plinnFiles.length ; i++)\r        PlinnProcess[plinnFiles[i].name](plinnFiles[i]);\r    dlg.close();\r}\r\rfunction drawDialog() {\r       dlg = new Window('dialog', messages['wizardTitle']);\r   \r       /* Panneau de sélection des données source */\r        var panelSrc = dlg.add('panel', undefined, messages['srcPanelLabel']);\r \r       /* Fichier de propriétés */\r  panelSrc.add('statictext', undefined, messages['helpPropsFile']);\r      var propsFileGrp = panelSrc.add('group');\r      var btnChoosePropsFile = propsFileGrp.add('button', undefined, messages['buttonSelectPropsFile']);\r     btnChoosePropsFile.onClick = setPropsFile;\r     selectedPropsFile = propsFileGrp.add('statictext');\r    selectedPropsFile.text = messages['noFileSelected'];\r   \r       /* Sélection du dossier source */\r     panelSrc.add('statictext', undefined, messages['helpSrcFolder']);\r      panelSrc.alignChildren = "left";\r       var folderSrcGroup = panelSrc.add('group');\r    var btnChooseSrcFolder = folderSrcGroup.add('button', undefined, messages['selectSrcFolder']);\r btnChooseSrcFolder.onClick = setSrcFolder;\r     \r       selectedSrcFolderPath = folderSrcGroup.add('statictext');\r      selectedSrcFolderPath.text = messages['noFolderSelected'];\r     \r       /* Panneau de sélection du dossier de destination */\r  var panelDest = dlg.add('panel', undefined, messages['destPanelLabel']);\r       panelDest.add('statictext', undefined, messages['helpDestFolder']);\r    panelDest.alignChildren = "left";\r      var folderDestGroup = panelDest.add('group');\r  var btnChooseDestFolder = folderDestGroup.add('button', undefined, messages['selectDestFolder']);\r      btnChooseDestFolder.onClick = setDestFolder;\r   \r       selectedDestFolderPath = folderDestGroup.add('statictext');\r    selectedDestFolderPath.text = messages['noFolderSelected'];\r\r   \r       \r       /* Boutons de contrôle */\r     var ctrlGrp = dlg.add('group');\r        ctrlGrp.alignement= 'right';\r   ctrlGrp.alignChildren = "right";\r       var okBtn = ctrlGrp.add('button', undefined, messages["okBtnLabel"]);\r  okBtn.enabled = false;\r okBtn.onClick = processImages;\r dlg.defaultElement = okBtn;\r    var cancelBtn = ctrlGrp.add('button', undefined, messages["cancelBtnLabel"]);\r  dlg.cancelElement = cancelBtn;\r \r               \r       dlg.center();\r  dlg.show();\r}\r\r\rfunction shortFileName( inFileName ) {\r if ( inFileName.length > gShortFileNameLength ) {\r              return "..." + inFileName.substr( inFileName.length - gShortFileNameLength + 3, gShortFileNameLength - 3 );\r    }\r      return inFileName;\r}\r\rfunction setSolidFillColor(color) {\r    var r = color[0];\r    var g = color[1];\r    var b = color[2];\r    var id9 = charIDToTypeID( "setd" );\r        var desc4 = new ActionDescriptor();\r            var id10 = charIDToTypeID( "null" );\r               var ref1 = new ActionReference();\r              var id11 = stringIDToTypeID( "contentLayer" );\r         var id12 = charIDToTypeID( "Ordn" );\r           var id13 = charIDToTypeID( "Trgt" );\r           ref1.putEnumerated( id11, id12, id13 );\r            desc4.putReference( id10, ref1 );\r      var id14 = charIDToTypeID( "T   " );\r               var desc5 = new ActionDescriptor();\r            var id15 = charIDToTypeID( "Clr " );\r               var desc6 = new ActionDescriptor();\r                    var id16 = charIDToTypeID( "Rd  " );\r                   desc6.putDouble( id16, r );\r                    var id17 = charIDToTypeID( "Grn " );\r                   desc6.putDouble( id17, g );\r                    var id18 = charIDToTypeID( "Bl  " );\r                   desc6.putDouble( id18, b );\r                var id19 = charIDToTypeID( "RGBC" );\r           desc5.putObject( id15, id19, desc6 );\r      var id20 = stringIDToTypeID( "solidColorLayer" );\r      desc4.putObject( id14, id20, desc5 );\r      executeAction( id9, desc4, DialogModes.NO );    \r}\r\rfunction main() {\r  init();\r        drawDialog();\r}\r\rtry {\r    main();\r}\rcatch(e) {\r    alert(e);\r}
\ No newline at end of file